📓 en/04 - Documentation technique/mediawiki.md by @communecter ☆

Mediawiki & Communecter

Introduction

Cette partie du module interop, cherche en cas de mediawiki existant Ă  le connecter avec communecter et de permettre via un bouton a crĂ©er des Ă©lĂ©ments du type de la page du wiki, ou en cas d’Ă©lĂ©ment prĂ©sent de fournir le lien.

Initialisation du mediawiki

Dans le menu d’un Ă©lĂ©ment on clic sur @Mediawiki en dessous de "Points d’intĂ©rĂȘt".

ArrivĂ© dans interop/MediaWiki/ beforeAction() instancie APIMediawiki (model de relations avec le wiki) qui est enfant de DB (model de relations avec la bdd) cherche en base de donnĂ©es l’existence ou non de ce wiki, si non cela crĂ©e dans collection "mediawiki" un wiki vide de la forme:

public function newIn($id, $name, $type)
{
$baseDataDB = [
"name" => $name,
"parent" => [
"id" => $id,
"type" => $type
],
"url" => "",
"params" => "none",
"logo" => ""
];
PHDB::insert("mediawiki", $baseDataDB);
}

L’action par default du controller ActionIndex() elle rĂ©cupĂšre les infos en base de donnĂ©es via le model et envoie les bonnes donnĂ©es dans la vue

{
    "_id" : ObjectId(""),
    "name" : nomduwiki,
    "parent" : {
        "id" : ,
        "type" : 
    },
    "url" : "<urlEnregistré>/api.php",
    "params" : {
        "ressources" : {
            "get" : [ 
                "[[Cat%C3%A9gorie:<catTrouvé>]]", 
...
            ]
        },
        "acteurs" : {
            "get" : [ 
                 "[[Cat%C3%A9gorie:<catTrouvé>]]", 
...
            ]
        },
        "projets" : {
            "get" : [ 
               "[[Cat%C3%A9gorie:<catTrouvé>]]", 
...
        }
    },
    "logo" : ""
}

Utilisation navigation

Sur interop.views.default.indexMediaWiki les boutons Acteurs, Projets, Emplois s’affiche en cas d’existence. Clic direction interop/mediawiki/menuleft qui appel la mĂ©thode **menu(**catĂ©gorieChoisie) de l’instance APIMediaWiki. Qui va chercher la listes des pages liĂ©es crĂ©er la data pour la vue appelĂ© par le controller qui affiche les rĂ©sultats dans un menu dĂ©roulant triĂ© par ordre alphabĂ©tique en accordĂ©on si rĂ©sultat est supĂ©rieur Ă  30 unitĂ©s: interop.views.menus.pages.

Au clic sur le nom du page direction interop/mediawiki/page qui appel la mĂ©thode page(nomPage) de l’instance APIMediaWiki qui scan les propriĂ©tĂ©s disponibles de la page puis rĂ©cupĂšre les donnĂ©es. Ces donnĂ©es sont triĂ© et converties afin de standardiser pour la vue et les inputs prĂ©remplies de formulaires de crĂ©ation d’Ă©lĂ©ment via convertWikiMediaToPh(['data' => $dataRĂ©cupĂ©rer, $nomCatĂ©gorie, $nomDuWiki) dans le module citizenToolKit/model/Convert.php

Ces données sont envoyées dans la vue interop.views.page.index qui affiche par défault un A propos de la page du wiki et le menu left contient en fonction des données des boutons proposant de lister Communautées(sous divisé en communauté et utilisateur), Défis, Ressources en rapport avec la page du wiki.

Tout clic sur une entités réprésentant une autre page du wiki fait le méme chemin a partir de interop/mediawiki/page du controlleur interop/MediaWiki.

Relations wiki et Intégration dans communecter

Dans A propos il ya trois boutons qui font les liens: Un bouton Page du Wiki qui redirige vers la page source du wiki. Un bouton Site web qui redirige vers le site de l’Ă©lement du wiki.

Le dernier bouton peu avoir deux valeurs : CrĂ©er dans communecter qui ouvre un formulaire prĂ©remplie et Ă©ditable afin de crĂ©er un Ă©lĂ©ment communecter. Page Communecter qui redirige vers la page communecter en relation avec l’Ă©lĂ©ment du wiki.